Программирование на основе
интерфейсов
Предположим, что вы хотите
зашифровать ваши данные, и, следовательно,
не желаете полагаться на сериализацию (преобразование
в последовательную форму), реализованную на
основе простого протокола доступа к
объектам (Simple Object Access Protocol — SOAP), входящего в
состав библиотеки .NET Framework. Ваш класс может
наследовать интерфейс ISeriaiizaole и содержать
реализацию соответствующего алгоритма (как
это сделать, мы обсудим в следующих главах).
Тогда при сохранении и восстановлении
данных библиотека .NET Framework будет
использовать ваши методы.
Но как библиотека .NET Framework узнает
о том. что вы реализовали интерфейс 15-erializable?
Оказывается, она может запросить
метаданные соответствующего класса для
того, чтобы узнать, наследчет ли он
указанный интерфейс! Затем при
сериадизации объекта или преобразовании
его из последовательной формы в "параллельную"
библиотека классов .NET Framework может
использовать либо ее собственный алгоритм,
либо код соответствующего класса.
Программирование на основе
интерфейсов используется платформой .NET для
того, чтобы при помощи разработанных
программистом объектов дополнить
стандартные функционачьные возможности
библиотеки классов .NET Framework. Использование
интерфейсов позволяет также привести
работу с разными объектами к общему
знаменателю, не зная точного типа объекта.
Например, средства форматирования (скажем,
форматер SOAP, который используется в данном
примере) наследуют интерфейс I Formatter.
Программы могут быть написаны
безотносительно к какому бы то ни было
конкретному (двоичному, SOAP) форматеру,
используемому сейчас, или форматеру,
который будет использоваться в будущем, и
при этом они будут работать должным образом.
Содержание раздела